package cc.shacocloud.luanniao.core.service

import cc.shacocloud.luanniao.core.model.dto.input.NamespaceInput
import cc.shacocloud.luanniao.core.model.mo.UserNamespaceMo
import cc.shacocloud.luanniao.core.model.po.NamespacePo
import cc.shacocloud.luanniao.core.model.po.UserPo

/**
 *
 * @author 思追(shaco)
 */
interface NamespaceService {

    /**
     * 根据id查询命名空间
     */
    suspend fun findById(namespaceId: Long): NamespacePo?

    /**
     * 创建命名空间
     */
    suspend fun create(input: NamespaceInput, userPo: UserPo): NamespacePo

    /**
     * 获取用户命名空间信息，如果该用户没有命名空间的权限将抛出例外
     */
    suspend fun findUserNamespace(namespaceId: Long, userId: Long): UserNamespaceMo

}